#include <iostream>

using namespace std;

int isPrime(int a) {  //判断素数
    int i;
    if (a == 1)
        return 0;
    if (a % 2 == 0)
        return 0;
    else {
        for (i = 2; i * i <= a; i++) {
            if (a % i == 0)
                return 0;
        }
        return 1;
    }
}

int reverse(int n){  //判断回文
    int sum=0;
    int k=n;
    while(n!=0){
        sum=sum*10+n%10;
        n=n/10;
    }
    if (sum==k){
        return 1;
    } else{
        return 0;
    }
}

int main() {
    int begin,end,i;
    scanf("%d %d",&begin,&end);
    if(begin<=2)
        printf("2\n");//对2的补救
    if(begin%2==0)
        begin++;
    for(i=begin;i<=end;i+=2)
    {
        if(i==9999989) //如果到了这个数，就break
            break;
        if(reverse(i)&&isPrime(i))//否则判断是否回文和素数
            printf("%d\n",i);//输出每个回文质数
    }
    return 0;
}
